#!/bin/bash

CD_DEV=1
FLOPPY_DEV=2
USB_DISK_DEV=3    #includes memory keys
USB_FLOPPY_DEV=4
UNKNOWN_DEV=5
GOOD=1
BAD=0

LIST=`cat /etc/fstab | grep media | awk '{print $1}'`

declare -a devarray=( $LIST )

DEVARRAYELEMENTS=${#devarray[@]}

let x=0

while [ $x != $DEVARRAYELEMENTS ]; do

   case ${devarray[$x]} in

   /dev/cdrom   )
       typearray[$x]=$CD_DEV
       statarray[$x]=$GOOD
       ;;

   /dev/fd0   )
       typearray[$x]=$FLOPPY_DEV
       #test to see if it exists. Some Machines will not have a floppy, but
       #will have an entry in the fstab
       DEV=`/usr/sbin/hwinfo --floppy  | grep "/dev/fd0"`
       if [ "$DEV" == "" ] ; then
             statarray[$x]=$BAD
       else
             statarray[$x]=$GOOD
       fi
       ;;
    *        )
       #find the type of the other devices 
       KEY=`cat /etc/fstab | grep  ${devarray[$x]} |awk '{print $8}'` 
       if [ "$KEY" != "" ]; then
          TYPE=`/usr/sbin/hwscan --list | grep "$KEY" | awk  '{print $5}'` 
          STATUS=`/usr/sbin/hwscan --list | grep "$KEY" | awk  '{print $3}'` 
          
          case $TYPE in
             disk      ) typearray[$x]=$USB_DISK_DEV ;;
             floppy    ) typearray[$x]=$USB_FLOPPY_DEV ;;
             *         ) typearray[$x]=$UNKNOWN_DEV ;;
          esac

          if [ $STATUS = "avail=yes," ]; then
             statarray[$x]=$GOOD
          else
             statarray[$x]=$BAD
          fi
       else
          # not found
          statarray[$x]=$BAD 
          typearray[$x]=$UNKNOWN_DEV   
       fi
       ;; 
    esac

    let x=$x+1
done

#Build String

OUTSTRING=""
let x=0
while [ $x != $DEVARRAYELEMENTS ]; do
  
 if [ ${statarray[$x]} == "$GOOD" ]; then
       
      #echo " dev = ${devarray[$x]}  type= ${typearray[$x]}"
      if [ "$OUTSTRING" == "" ]; then
            OUTSTRING="${devarray[$x]};${typearray[$x]}"
      else
            OUTSTRING="$OUTSTRING;${devarray[$x]};${typearray[$x]}"
      fi
 
 fi
 let x=$x+1

done

echo $OUTSTRING
exit 0
